#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 创建文件
int create_file(const char *filename)
{
    FILE *file = fopen(filename, "w");
    if (file == NULL)
    {
        printf("无法创建文件\n");
        return 1;
    }
    fclose(file);
    return 0;
}

// 检查文件是否存在
int file_exists(const char *filename)
{
    FILE *file = fopen(filename, "r");
    if (file != NULL)
    {
        fclose(file);
        return 1;
    }
    else
    {
        return 0;
    }
}

// 打开文件
FILE *open_file(const char *filename, const char *mode)
{
    FILE *file = fopen(filename, mode);
    if (file == NULL)
    {
        printf("无法打开文件\n");
        return NULL;
    }
    return file;
}

// 写入内容到文件中
int write_to_file(FILE *file, const char *content)
{
    if (fprintf(file, "%s", content) < 0)
    {
        printf("写入失败\n");
        return 1;
    }
    return 0;
}

// 删除文件
int delete_file(const char *filename)
{
    if (remove(filename) == 0)
    {
        printf("文件删除成功\n");
    }
    else
    {
        printf("文件删除失败\n");
        return 1;
    }
    return 0;
}

// 追加内容到文件中
int append_to_file(FILE *file, const char *content)
{
    if (fprintf(file, "%s", content) < 0)
    {
        printf("追加内容失败\n");
        return 1;
    }
    return 0;
}

// 按行读取文件内容
int read_file_line_by_line(FILE *file)
{
    char line[256];
    while (fgets(line, sizeof(line), file))
    {
        printf("%s", line);
    }
    return 0;
}

// 读取整个文件内容
int read_file_all(FILE *file)
{
    int c;
    while ((c = fgetc(file)) != EOF)
    {
        printf("%c", c);
    }
    return 0;
}

// 读取文件夹目录
void read_directory(const char *path)
{
    // 在此函数中实现读取文件夹目录的逻辑
    // 可以使用相关系统调用或第三方库来实现
    printf("读取文件夹目录：%s\n", path);
}

// 创建文件夹
int create_directory(const char *path)
{
    if (mkdir(path) == -1)
    {
        printf("文件夹创建失败\n");
        return 1;
    }
    return 0;
}

// 删除文件夹
int delete_directory(const char *path)
{
    if (rmdir(path) == -1)
    {
        printf("文件夹删除失败\n");
        return 1;
    }
    return 0;
}

// 修改文件为可执行文件
int make_executable(const char *filename)
{
    if (chmod(filename, 0755) == -1)
    {
        printf("修改文件为可执行文件失败\n");
        return 1;
    }
    return 0;
}

int main()
{
    const char *filename = "example.txt";
    const char *directory = "example_folder";

    // 文件操作示例
    create_file(filename);
    if (file_exists(filename))
    {
        FILE *file = open_file(filename, "w");
        write_to_file(file, "Hello, World!\n");
        append_to_file(file, "This is the appended content.\n");
        fclose(file);

        file = open_file(filename, "r");
        read_file_line_by_line(file);
        fclose(file);

        file = open_file(filename, "r");
        read_file_all(file);
        fclose(file);

        delete_file(filename);
    }

    // 文件夹操作示例
    create_directory(directory);
    read_directory(directory);
    delete_directory(directory);

    return 0;
}